package com.ndp.fb.mq.api.service.publishhandleservice;

/**
 * 注册并执行前置handle
 * Created by hunk.qin on 2016/1/13.
 */
public interface PublishPreProcessorHandle {


    /**
     * 执行处理所有的 PublishPreProcessor 接口的 check 方法，如果是true，则执行 refreshCache方法
     * 所有前置 handle 为顺序执行
     */
    void handle(String batchId);

    /**
     * 注册所有前置 handle
     * @param publishPreProcessor
     */
    void registerHandle(PublishPreProcessor publishPreProcessor);

    /**
     * 对 前置 processor 进行依赖的排序，让 Pre handle 可以有序执行
     * @return
     */
    PublishPreProcessor [] sortPreProcessor();


}
